Grafik İfadelerindeki Alternatif Durumlara örnekler
Bu örnekler, alternatif durumların QlikView Geliştiricileri ve/veya üst seviye QlikView İleri Kullanıcıları tarafından kullanımına ilişkin en iyi uygulamaları göstermeyi amaçlamaktadır. Bu örnekler şu dosyada bulunabilir: ‘Alternate States Functionality.qvw’
Durumlar Arasındaki Seçimlerin Eşitlemesi
Aşağıdaki ifadeler tek bir grafikte kullanılabilir:
- count({$} DISTINCT [Invoice Number])
- count({State1} DISTINCT [Invoice Number])
- count({State2} DISTINCT [Invoice Number])
Bu yöntemle ilgili bir sorun bulunmaktadır: Son kullanıcının çeşitli durumlar için uygun seçimleri yapabilmesi amacıyla, QlikView Geliştiricisi üç durumun tümü için seçimleri (liste kutuları ve çoklu kutular) çoğaltmalıdır. Birçok durumda, QlikView Geliştiricisi tüm durumlar için kullanılabilen bir 'ortak' seçimler kümesine sahip olmak isteyecektir. Bu, son kullanıcının çeşitli grafikler için bağlam ayarlamasını ve ardından farklı durumlar arasındaki farkları göstermek için belirli seçimlerden faydalanmasını sağlar. Durumlar arasında belirli seçimlerin tutarlılığı sağlamak için Set Analysis durumlarla birlikte kullanılabilir.
- count({State1<Year = $::Year, Month = $::Month>} DISTINCT [Invoice Number])
- count({State2<Year = $::Year, Month = $::Month>} DISTINCT [Invoice Number])
QlikView Geliştiricisi, State1 ve State2 durumlarındaki Year ve Month seçimlerinin varsayılan durum'daki Year ve Month seçimleriyle eşitlemesini korur. QlikView Geliştiricisi, durumlar arasında daha fazla sayıda alanı tutarlı tutmak için küme değiştiricilerine gerektiği gibi elementler ekleyebilir.
Küme İşleçleri
Küme işleçleri (+, *, -, /) durumlarla birlikte kullanılabilir. Aşağıdaki ifadeler geçerlidir ve varsayılan durum içinde veya State1 durumu içinde olan tekil fatura numaralarını sayar.
Örnekler:
- count({$ + State1} DISTINCT [Invoice Number])
<varsayılan> durum ve State1 birleştirmesinde bulunan tekil fatura numaralarını sayar.
- count({1 - State1} DISTINCT [Invoice Number])
State1 durumunda bulunmayan tekil fatura numaralarını sayar.
- count({State1 * State2} DISTINCT [Invoice Number])
hem <varsayılan> durum hem de State1 durumunda bulunan tekil fatura numaralarını sayar.
Örtük Alan Değeri Tanımları
Küme işleçlerini kullanmanın bir başka yolu da, P() ve E() element fonksiyonlarıdır. Bu fonksiyonlar yalnızca küme ifadeleri içinde kullanılabilir.
Örnekler:
- count({$<[Invoice Number] = p({State1} [Invoice Number])>} DISTINCT [Invoice Number])
Bu ifade, State1 durumunda bulunan olası fatura numaralarına göre <varsayılan> durumdaki tekil fatura numaralarını sayar.
Bu, tam olarak olmasa da neredeyse aşağıdaki ifadeye eşittir:
- count({$<[Invoice Number] = State1::[Invoice Number]>} DISTINCT [Invoice Number])
İfadeler arasındaki fark şudur: Birinci ifadede, State1 durumundan gelen fatura numarasındaki olası değerler varsayılan durum'a aktarılır. İkinci ifadede, State1 durumundan seçilen değerler varsayılan durum'a aktarılır. Kullanıcı State1 durumunda herhangi bir fatura numarası seçimi yapmadıysa, varsayılan durum'a herhangi bir fatura numarası değeri aktarılmaz.
Küme işleçleri en iyi şekilde küme değiştiricileri içinde kullanılır. Aşağıdaki ifade, State1 ve State2 durumlarını olası fatura numaralarının kesişim noktasını bulur ve bu değerleri varsayılan durum'daki fatura numaralarına aktarır.
Örnekler:
- count({$<[Invoice Number] = p({State1} [Invoice Number]) * p({State2} [Invoice Number])>} DISTINCT [Invoice Number])
<Varsayılan> durumdaki ve State1 durumundaki fatura numaralarının kesişimini bulma ifadesi:
- count({$<[Invoice Number] = p({$} [Invoice Number]) * p({State1} [Invoice Number])>} DISTINCT [Invoice Number])
Bir durumu (bu örnekte <varsayılan>) hem element fonksiyonunda ve hem de bir küme tanımlayıcısında kullandığından, bu ifade kafa karıştırıcı görünebilir. p($) element fonksiyonunun varsayılan durum'daki olası değerleri verdiğini unutmayın. {$} küme/durum tanımlayıcısı, element fonksiyonlarının sonucu tarafından değiştirilir. Varsayılan durum'da o anda mevcut tüm fatura seçimleri, element fonksiyonlarının kesişiminden gelen değerlerle geçersiz kılınmaktadır.
varsayılan durum ve State1 arasındaki ortak seçimleri eşitlemede başarısız olduğundan, yukarıdaki ifadenin yine de tamamen doğru olmadığı dikkate alınmalıdır. Bunu yapacak ifadeyse aşağıdadır:
Örnekler:
- count({$<[Invoice Number] = p({$} [Invoice Number]) * p({State1<Year = $::Year, Month = $::Month>} [Invoice Number])>} DISTINCT [Invoice Number])
Önceden olduğu gibi, QlikView Geliştiricisi çeşitli durumlar arasında seçimlerin tutarlılığını korumak için değiştiriciye alanlar ekleyebilir.